好唷!來說說小鎮上精靈們的書店草創時期小故事 - 第 2 篇~~😊
然而,隨著書店開張的日子臨近,小精靈們又面臨了另一個挑戰:如何保持書籍資料的多樣性。雖然他們已經有了幾本書,但為了吸引更多顧客,他們需要更多的書籍。
這時,小精靈們想到了一個新的主意:使用「factory」魔法來生成隨機的書籍資料。他們使用 Artisan 命令 中的 make:factory
創建了一個名為 BookFactory
的新器具,這樣就能不用手動,輕鬆生成各種書籍了。
--model=Book
告訴 Laravel 工廠是要針對 Book
模型唷!
php artisan make:factory BookFactory --model=Book
可以看到在檔案中有一個方法:definition
,我們接著通過 fake
輔助函式,就能方便地產生各種類型的隨機資料
use App\Models\Book;
use Illuminate\Database\Eloquent\Factories\Factory;
class BookFactory extends Factory
{
protected $model = Book::class;
public function definition():array
{
return [
'title' => fake()->sentence(),
'author' => fake()->name(),
'published_year' => fake()->year(),
// 'genrec' 會在 'Fiction' 和 'Non-Fiction' 之間交替
'genre' => fake()->randomElement(['Fiction', 'Non-Fiction'
];
}
}
小精靈們將 BookFactory
融入到 BookSeeder
中,
使用 create
方法,這樣他們就可以一次性生成大量的書籍資料
使用 count
方法,創建想要的數量
class BookSeeder extends Seeder
{
public function run()
{
// 新增 100 筆資料
Book::factory()->count(100)->create();
}
}
當他們執行 db:seed
時,書店的資料庫中瞬間填滿了各式各樣的書籍,應有盡有。
參考資料
踏著身心靈的塔羅腳步,轉向技術與邏輯的工程師之路,就藉由塔羅日抽來紀錄今日的學習與生活吧!
寶劍六:鐵人賽走到今天也完成了1/3了,覺得文章有很多可以進步的空間,但沒關係,先讓我們繼續向前行!
It does not matter how slowly you go so long as you do not stop.
走得多慢都沒關係,只要妳不停下腳步。
- Andy Warhol 安迪‧沃荷